package com.gmall.item.vo;

import com.gmall.pms.entity.CategoryEntity;
import com.gmall.pms.entity.SkuImagesEntity;
import com.gmall.pms.vo.ItemGroupVo;
import com.gmall.pms.vo.SaleAttrValueVo;
import com.gmall.sms.vo.ItemSaleVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
public class ItemVo {

    // 一二三级分类  V    O
    private List<CategoryEntity> categories;

    // 品牌信息 V   O
    private Long brandId;
    private String brandName;

    // spu信息 V  O
    private Long spuId;
    private String spuName;

    // sku的核心字段 V   O
    private Long skuId;
    private String title;
    private String subtitle;
    private BigDecimal price;
    private Integer weight;
    private String defaultImage;

    // 优惠信息 V   O
    private List<ItemSaleVo> sales;

    // 是否有货 V   O
    private Boolean store = false;

    // sku图片列表 V    O
    private List<SkuImagesEntity> images;

    // 当前spu下所有sku的销售属性： V  O
    // [
    // {attrId: 3, attrName: 机身颜色, attrValues: [白天白, 暗夜黑]},
    // {attrId: 4, attrName: 运行内存, attrValues: [8G, 12G]},
    // {attrId: 5, attrName: 机身存储, attrValues: [256G, 512G]}
    // ]
    private List<SaleAttrValueVo> saleAttrs;

    // 当前sku的销售属性   V O
    // {3: 暗夜黑, 4: 8G, 5: 512G}
    private Map<Long, String> saleAttr;

    // 查询销售属性组合与skuId的映射关系 V O
    // {白天白,8G,256G: 10, 白天白,12G,512G: 11}
    private String skuJsons;

    // 描述信息 V   O
    private List<String> spuImages;

    // 规格参数分组集合
    private List<ItemGroupVo> groups;
}